home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / DATAUTIL / DBASEUT1.LZH / STEPBACK.PRG < prev    next >
Text File  |  1989-01-07  |  5KB  |  176 lines

  1. ********************************************************************************
  2. * T3SB.PRG                         <-FILE
  3. * STEP BACKWARD                    <-FUNCTION
  4. *
  5. * (c) 1989 TECH III, INC. @ (213) 547-2191
  6. *
  7. * HISTORY: 1/07/89  1:50 pm Richard Grossman
  8. *******************************************************************************
  9. * SET ENVIRONMENT
  10. set talk off
  11. set status off
  12. set safety off
  13. set scoreboard off
  14. set deleted off
  15. close all
  16. clear all
  17. clear
  18. @ 23,00 say 'STEP BACKWARD Program is initializing...'
  19. if iscolor()
  20.   store 'B/W, W/B+'   to color1
  21.   store 'GR+/N,W+*/R' to color2
  22.   store 'RB/N+,N/RB'  to color3
  23.   store 'W+/N,N/W'    to color4
  24. else
  25.   store 'W+/N,N/W'    to color1, color4
  26.   store 'N/W,W+/N'    to color2, color3
  27. endif
  28.  
  29. * MAKE SURE YOU'RE RUNNING IN DBASE IV
  30. on error do COPOUT with 'Sorry, this program only works in dBASE IV.'
  31. set clock off
  32. on error
  33.  
  34. * DEFINE WINDOWS
  35. define window SIGN_OFF from 05,10 to 09,70 double color &COLOR4
  36. define window PROPGAND from 00,00 to 24,79 color &COLOR1
  37. define window GET_OKAY from 04,04 to 22,76 double color &COLOR2
  38. define window WATCH_IT from 07,07 to 18,72 double color &COLOR3
  39.  
  40. * OPENING PROPAGANDA WINDOW
  41. activate window PROPGAND
  42. @ 01,02 say 'STEP BACKWARD                        Copyright (c) 1989 Tech III, Inc.'
  43. @ 00,00 to 02,77 double
  44. text
  45.  The bold utility for those who want to take a step forward into the future
  46.  with dBASE IV while keeping one foot safely in the past with dBASE III Plus,
  47.  and other dBASE III Plus file-format-using programs.
  48.  
  49.  If you like this program, you'll love our custom programming services, and
  50.  our other products, such as:
  51.  
  52.   SCAN-A-LYZER! The fastest dBase documentor
  53.   SIMPLICITY    The best-value library for Clipper (soon: the dBase compiler)
  54.   W.E.M.P.      Let's us word-star interface addicts use Brief
  55.  
  56.   For more info, please call Tech III:
  57.  
  58.   US TOLL-FREE: 800 543-9941  CAL & WORLD: 213 547-2191 FAX: 213 547-2758
  59.     COMPUSERVE: Richard Grossman 76137,2514        MCI-MAIL: TECHIII
  60.  
  61. endtext
  62. wait
  63. @ 20,00 clear
  64.  
  65. * WARNING MESSAGE AND CHANCE TO CANCEL
  66. activate window GET_OKAY
  67. text
  68.  This program will utilize the dBASE IV command: COPY TO fname TYPE
  69.  dbmemo3 to return any dbase files that have memo fields back to their
  70.  virgin dBASE III Plus-compatible state.  If you don't know what this
  71.  means or what it's good for, you probably don't need it.
  72.  
  73.  It only processes files with associated DBT files.  It does ALL of
  74.  those.  When I get the time, I'll write a pop-up routine to let you
  75.  pick files.
  76.  
  77.  Okay, here's your chance to chicken out: if this program scrambles
  78.  your files, your brain, your job, your data, your disk, etc., you're
  79.  on the hook all by yourself.  By answering Yes to the next prompt you
  80.  agree to this.  (Say, do you have a back-up around?)  It works great
  81.  for me.
  82.  
  83. endtext
  84. store .N. to AGREE
  85. ?
  86. @ row(),03 say 'AGREE TO THE ABOVE AND START PROCESSING?' get AGREE pict 'Y'
  87. read
  88. if .not. AGREE
  89.   do SIGN_OFF with 'Thanks for using STEP BACKWARD.'
  90.   return
  91. endif
  92.  
  93. * OKAY, HERE WE GO...
  94. deactivate window GET_OKAY
  95. activate window WATCH_IT
  96. ? 'Processing started...  If you can figure out the workaround for'
  97. ? 'the dBASE IV anomaly that produces the "Press any key" message '
  98. ? 'that is about to mess up my screen, please let me know!'
  99. ?
  100. ? 'Running a DIR on the databases in DOS...'
  101. run dir *.DB? > DB.TXT
  102. clear
  103. ? 'Building a database of dbf and dbt files...'
  104. use STEPBACK in 1 alias DATA_FILES
  105. select DATA_FILES
  106. zap
  107. copy structure to STEPBK2
  108. set talk on
  109. append from DB.TXT sdf for FILE_EXT = 'DBF'
  110. set talk off
  111.  
  112. use STEPBK2 in 2 alias MEMO_FILES
  113. select MEMO_FILES
  114. append from DB.TXT sdf for FILE_EXT = 'DBT'
  115. index on FILE_NAME to STEPBK2
  116.  
  117. select DATA_FILES
  118. set relation to FILE_NAME into MEMO_FILES
  119. go top
  120. locate for .not. eof("MEMO_FILES")
  121. store 0 to counter
  122. do while .not. eof("DATA_FILES")
  123.   store counter + 1 to counter
  124.   ? 'Processing ' + trim(FILE_NAME)
  125.   store trim(FILE_NAME) to MFILE_NAME
  126.   use (MFILE_NAME) in 3 alias WORKFILE
  127.   select WORKFILE
  128.   set talk on
  129.   copy to TEMP
  130.   set talk off
  131.   use TEMP
  132.   set talk on
  133.   copy to (MFILE_NAME) type dbmemo3
  134.   set talk off
  135.   select DATA_FILES
  136.   continue
  137. enddo
  138.  
  139. * Housekeeping
  140. ? 'Housekeeping (deleting work files)...'
  141. zap
  142. close data
  143. erase STEPBK2.DBF
  144. erase STEPBK2.NDX
  145. erase DB.TXT
  146. if file('TEMP.DBF')
  147.   erase TEMP.DBF
  148. endif
  149. if file('TEMP.DBT')
  150.   erase TEMP.DBT
  151. endif
  152. do SIGN_OFF with ltrim(str(counter,5)) + ' files processed.  Thanks for using STEP BACKWARD'
  153. return
  154.  
  155. procedure SIGN_OFF
  156. parameters MSG
  157. activate window SIGN_OFF
  158. clear
  159. @ 01,01 say MSG
  160. ?
  161. wait ' (Next keystroke dumps you back to the prompt)'
  162. close all
  163. clear all
  164. deactivate window all
  165. set color to R+/N
  166. clear
  167. @ 01,00 say '...STEP BACKWARD.  Copyright 1989 (c) Tech III, Inc.'
  168. set color to W+/N, N/W
  169. return
  170.  
  171. procedure COPOUT
  172. parameters MSG
  173. @ 23,00 say MSG
  174. return
  175. * EOF
  176.